package com.vv.tools.modules.sys.converter;

import com.vv.tools.common.constant.sys.MenuTypeEnum;
import com.vv.tools.common.constant.sys.UserGenderEnum;
import com.vv.tools.common.constant.sys.UserStatusEnum;

import java.util.Arrays;

public class EnumConverter {

    private EnumConverter() {
    }

    public static <E extends Enum<E>> String enum2str(E e) {
        return e == null ? null : e.name();
    }

    public static Integer userGender1(UserGenderEnum e) {
        return null == e ? null : e.getCode();
    }

    public static UserGenderEnum userGender2(Integer i) {
        return Arrays.stream(UserGenderEnum.values()).filter(e -> e.getCode().equals(i)).findFirst().orElse(null);
    }

    public static Integer userStatus1(UserStatusEnum e) {
        return null == e ? null : e.getCode();
    }

    public static UserStatusEnum userStatus2(Integer i) {
        return Arrays.stream(UserStatusEnum.values()).filter(e -> e.getCode().equals(i)).findFirst().orElse(null);
    }


    public static Integer menuType1(MenuTypeEnum e) {
        return null == e ? null : e.getCode();
    }

    public static MenuTypeEnum menuType2(Integer i) {
        return Arrays.stream(MenuTypeEnum.values()).filter(e -> e.getCode().equals(i)).findFirst().orElse(null);
    }

}
